package com.atguigu.daijia.driver.service;

import com.atguigu.daijia.model.form.map.CalculateDrivingLineForm;
import com.atguigu.daijia.model.form.order.UpdateOrderCartForm;
import com.atguigu.daijia.model.vo.base.PageVo;
import com.atguigu.daijia.model.vo.map.DrivingLineVo;
import com.atguigu.daijia.model.vo.order.CurrentOrderInfoVo;
import com.atguigu.daijia.model.vo.order.NewOrderDataVo;

import java.util.List;

public interface OrderService {
    // 计算驾驶线路,这个是在根据乘客选择的出发地和目的地预估路程和时间
    DrivingLineVo calculateDrivingLine(CalculateDrivingLineForm calculateDrivingLineForm);
    // 查询订单状态
    Integer getOrderStatus(Long orderId);
    // 司机端查找当前订单
    CurrentOrderInfoVo searchDriverCurrentOrder(Long driverId);
    // 查询司机订单列表
    PageVo findDriverOrderPage(Long driverId, Long page, Long limit);
    // 查询司机新订单数据
    List<NewOrderDataVo> findNewOrderQueueData(Long driverId);
    // 司机抢单
    Boolean robNewOrder(Long driverId, Long orderId);
    // 司机到达代驾起始地点
    Boolean driverArriveStartLocation(Long orderId, Long driverId);
    // 更新代驾车辆信息
    Boolean updateOrderCart(UpdateOrderCartForm updateOrderCartForm);
}
